﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;

namespace WebLib.AuthorizeService
{
    public class Identity : IIdentity
    {
        [XmlAttribute("UserId")]
        public string UserId { get; set; }

        [XmlAttribute("UserName")]
        public string UserName { get; set; }

        [XmlAttribute("UserRoles")]
        public string[] UserRoles { get; set; }

        public Identity() {}

        public Identity(string userId, string userName, string[] userRoles)
        {
            UserName = userName;
            UserId = userId;
            UserRoles = userRoles;
        }

        #region IIdentity 멤버

        /// <summary>
        /// 인증 타입을 가져옵니다.
        /// </summary>
        [XmlIgnore]
        public string AuthenticationType
        {
            get { return string.Empty; }
        }

        /// <summary>
        /// 사용자가 인증되었는지 여부를 나타내는 값을 가져옵니다.
        /// </summary>
        [XmlIgnore]
        public bool IsAuthenticated
        {
            get { return true; }
        }

        /// <summary>
        /// 현재 사용자의 ID을 가져옵니다(UserId).
        /// </summary>
        [XmlIgnore]
        public string Name
        {
            get { return UserId; }
        }

        #endregion
    }
}
